home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / loop.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  2KB  |  91 lines

  1. #ifndef _LINUX_LOOP_H
  2. #define _LINUX_LOOP_H
  3.  
  4. /*
  5.  * include/linux/loop.h
  6.  *
  7.  * Written by Theodore Ts'o, 3/29/93.
  8.  *
  9.  * Copyright 1993 by Theodore Ts'o.  Redistribution of this file is
  10.  * permitted under the GNU General Public License.
  11.  */
  12.  
  13. #define LO_NAME_SIZE    64
  14. #define LO_KEY_SIZE    32
  15.  
  16.  
  17. /*
  18.  * Loop flags
  19.  */
  20. enum {
  21.     LO_FLAGS_READ_ONLY    = 1,
  22.     LO_FLAGS_USE_AOPS    = 2,
  23.     LO_FLAGS_AUTOCLEAR    = 4,
  24. };
  25.  
  26. #include <asm/posix_types.h>    /* for __kernel_old_dev_t */
  27. #include <linux/types.h>    /* for __u64 */
  28.  
  29. /* Backwards compatibility version */
  30. struct loop_info {
  31.     int           lo_number;        /* ioctl r/o */
  32.     __kernel_old_dev_t lo_device;         /* ioctl r/o */
  33.     unsigned long       lo_inode;         /* ioctl r/o */
  34.     __kernel_old_dev_t lo_rdevice;         /* ioctl r/o */
  35.     int           lo_offset;
  36.     int           lo_encrypt_type;
  37.     int           lo_encrypt_key_size;     /* ioctl w/o */
  38.     int           lo_flags;            /* ioctl r/o */
  39.     char           lo_name[LO_NAME_SIZE];
  40.     unsigned char       lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
  41.     unsigned long       lo_init[2];
  42.     char           reserved[4];
  43. };
  44.  
  45. struct loop_info64 {
  46.     __u64           lo_device;            /* ioctl r/o */
  47.     __u64           lo_inode;            /* ioctl r/o */
  48.     __u64           lo_rdevice;            /* ioctl r/o */
  49.     __u64           lo_offset;
  50.     __u64           lo_sizelimit;/* bytes, 0 == max available */
  51.     __u32           lo_number;            /* ioctl r/o */
  52.     __u32           lo_encrypt_type;
  53.     __u32           lo_encrypt_key_size;        /* ioctl w/o */
  54.     __u32           lo_flags;            /* ioctl r/o */
  55.     __u8           lo_file_name[LO_NAME_SIZE];
  56.     __u8           lo_crypt_name[LO_NAME_SIZE];
  57.     __u8           lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
  58.     __u64           lo_init[2];
  59. };
  60.  
  61. /*
  62.  * Loop filter types
  63.  */
  64.  
  65. #define LO_CRYPT_NONE        0
  66. #define LO_CRYPT_XOR        1
  67. #define LO_CRYPT_DES        2
  68. #define LO_CRYPT_FISH2        3    /* Twofish encryption */
  69. #define LO_CRYPT_BLOW        4
  70. #define LO_CRYPT_CAST128    5
  71. #define LO_CRYPT_IDEA        6
  72. #define LO_CRYPT_DUMMY        9
  73. #define LO_CRYPT_SKIPJACK    10
  74. #define LO_CRYPT_CRYPTOAPI    18
  75. #define MAX_LO_CRYPT        20
  76.  
  77. /*
  78.  * IOCTL commands --- we will commandeer 0x4C ('L')
  79.  */
  80.  
  81. #define LOOP_SET_FD        0x4C00
  82. #define LOOP_CLR_FD        0x4C01
  83. #define LOOP_SET_STATUS        0x4C02
  84. #define LOOP_GET_STATUS        0x4C03
  85. #define LOOP_SET_STATUS64    0x4C04
  86. #define LOOP_GET_STATUS64    0x4C05
  87. #define LOOP_CHANGE_FD        0x4C06
  88. #define LOOP_SET_CAPACITY    0x4C07
  89.  
  90. #endif
  91.